#ifndef __EVENT_H__
#define __EVENT_H__
#include "types.h"
enum MouseEventType
{
	TYPE_TOUCH_CLICK,
	TYPE_TOUCH_DCLICK,
	TYPE_TOUCH_CLICKUP,
	TYPE_TOUCH_LONGPRESS, // TODO: need timeout support!
	TYPE_TOUCH_LONGPRESSUP,
	TYPE_TOUCH_MOVE,
	TYPE_TOUCH_WHEEL,
};

static unsigned int FUNCTIONKEY_CTRL    = 0x00000001;
static unsigned int FUNCTIONKEY_WIN     = 0x00000002;
static unsigned int FUNCTIONKEY_ALT     = 0x00000004;
static unsigned int FUNCTIONKEY_SHIFT   = 0x00000008;
static unsigned int FUNCTIONKEY_COMMAND = 0x00000010; // MAC OS

static unsigned int FUNCTIONKEY_LBTN    = 0x00010000;
static unsigned int FUNCTIONKEY_MBTN    = 0x00020000;
static unsigned int FUNCTIONKEY_RBTN    = 0x00040000;

struct MouseEvent
{
	unsigned int functionKey;
	MouseEventType type;
	int x;
	int y;
	int param;
	unsigned long tickcount;
};

struct KeyEvent
{
	unsigned int functionKey;
	uint32 key_code;
	unsigned long tickcount;
};

#endif  // __EVENT_H__